//<p>我们定义，在以下情况时，单词的大写用法是正确的：</p>
//
//<ul> 
// <li>全部字母都是大写，比如 <code>"USA"</code> 。</li> 
// <li>单词中所有字母都不是大写，比如 <code>"leetcode"</code> 。</li> 
// <li>如果单词不只含有一个字母，只有首字母大写，&nbsp;比如&nbsp;<code>"Google"</code> 。</li> 
//</ul>
//
//<p>给你一个字符串 <code>word</code> 。如果大写用法正确，返回 <code>true</code> ；否则，返回 <code>false</code> 。</p>
//
//<p>&nbsp;</p>
//
//<p><strong>示例 1：</strong></p>
//
//<pre>
//<strong>输入：</strong>word = "USA"
//<strong>输出：</strong>true
//</pre>
//
//<p><strong>示例 2：</strong></p>
//
//<pre>
//<strong>输入：</strong>word = "FlaG"
//<strong>输出：</strong>false
//</pre>
//
//<p>&nbsp;</p>
//
//<p><strong>提示：</strong></p>
//
//<ul> 
// <li><code>1 &lt;= word.length &lt;= 100</code></li> 
// <li><code>word</code> 由小写和大写英文字母组成</li> 
//</ul>
//
//<div><li>👍 263</li><li>👎 0</li></div>

#include <bits/stdc++.h>
using namespace std;

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public:
    bool detectCapitalUse(string word) {
        if (word.size() == 1) return true;
        bool allUpCase = false;
        if (isupper(word[0]) && isupper(word[1])) {
            allUpCase = true;
        }
        for (int i = 1; i < word.size(); i++) {
            if (allUpCase && islower(word[i]) || !allUpCase && isupper(word[i])) return false;
        }
        return true;
    }
};

//leetcode submit region end(Prohibit modification and deletion)


int main() {
    Solution s;
    s.detectCapitalUse("Leetcode");
}
